# 取得原始碼
git clone https://github.com/dotnet/sdk.git
cd sdk
# Windows 建置(需已安裝 VS 跟 prerequisite)
build.cmd -c Release
# 快速編譯核心 CLI 可:
build.cmd -subset Cli -c Debug
常見前置:
| 目錄 | 用途 | 重點檔案 / 子目錄 | 
|---|---|---|
| src/Cli | 解析使用者輸入的 dotnet <command>指令框架 | dotnet/Program.cs、命令註冊表、help 系統 | 
| src/Tasks | MSBuild Task 實作(例如解析資產、生成 deps.json) | GenerateDepsFile,ResolvePackageAssets | 
| src/Resolvers | Sdk / 工作負載解析邏輯 | SdkResolver*類別 | 
| src/StaticWebAssetsSdk | Web 靜態資產佈署/融合 | Razor / Blazor 建置鏈結合 | 
| src/Workload* | 工作負載安裝、更新、manifest 管理 | 安裝策略、Roll-forward 檢查 | 
| src/Assets | 預置模板、targets、props | Microsoft.NET.Sdk.*.targets/props | 
| templates | CLI 內建或測試模板 | console / classlib / minimal api | 
| eng/ | 建置腳本、版本管理(Version.Details.xml) | 來源依賴版本鎖定 | 
| artifacts/ | 建置輸出 | bin / log / package | 
dotnet build MyProj.csproj
    ├─ 啟動 host (apphost) 載入 dotnet.dll
    ├─ 解析第一個引數:內建指令 / global tool / 路徑 / dll
    ├─ 建立命令模型(command descriptor)
    ├─ 解析與驗證參數、環境變數合併
    ├─ 呼叫對應 handler(例如 BuildCommand)
    │      └─ 建立 MSBuild Invocation (傳入 global properties)
    │             └─ MSBuild 評估專案 -> 執行 Targets & Tasks
    └─ 回傳 Exit Code
核心程式碼點:
src/Cli/dotnet/Parser 相關類別(System.CommandLine 演進版)BuiltInCommands.cs 收錄像 build / run / publish / restore ...Reporting / Telemetry 模組